<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Clipboards: GTK+ 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
<link rel="up" href="gtkbase.html" title="Part III. GTK+ Core Reference">
<link rel="prev" href="gtk3-Accelerator-Maps.html" title="Accelerator Maps">
<link rel="next" href="gtk3-Drag-and-Drop.html" title="Drag and Drop">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#gtk3-Clipboards.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#gtk3-Clipboards.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
                  <a href="#gtk3-Clipboards.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gtkbase.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gtk3-Accelerator-Maps.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gtk3-Drag-and-Drop.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gtk3-Clipboards"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gtk3-Clipboards.top_of_page"></a>Clipboards</span></h2>
<p>Clipboards — Storing data on clipboards</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gtk3-Clipboards.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardReceivedFunc" title="GtkClipboardReceivedFunc ()">*GtkClipboardReceivedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardTextReceivedFunc" title="GtkClipboardTextReceivedFunc ()">*GtkClipboardTextReceivedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardImageReceivedFunc" title="GtkClipboardImageReceivedFunc ()">*GtkClipboardImageReceivedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardTargetsReceivedFunc" title="GtkClipboardTargetsReceivedFunc ()">*GtkClipboardTargetsReceivedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardRichTextReceivedFunc" title="GtkClipboardRichTextReceivedFunc ()">*GtkClipboardRichTextReceivedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardURIReceivedFunc" title="GtkClipboardURIReceivedFunc ()">*GtkClipboardURIReceivedFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardGetFunc" title="GtkClipboardGetFunc ()">*GtkClipboardGetFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="gtk3-Clipboards.html#GtkClipboardClearFunc" title="GtkClipboardClearFunc ()">*GtkClipboardClearFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-get" title="gtk_clipboard_get ()">gtk_clipboard_get</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-get-for-display" title="gtk_clipboard_get_for_display ()">gtk_clipboard_get_for_display</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkDisplay</span> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-get-display" title="gtk_clipboard_get_display ()">gtk_clipboard_get_display</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-get-default" title="gtk_clipboard_get_default ()">gtk_clipboard_get_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()">gtk_clipboard_set_with_data</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()">gtk_clipboard_set_with_owner</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GObject</span> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-get-owner" title="gtk_clipboard_get_owner ()">gtk_clipboard_get_owner</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-clear" title="gtk_clipboard_clear ()">gtk_clipboard_clear</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-text" title="gtk_clipboard_set_text ()">gtk_clipboard_set_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-image" title="gtk_clipboard_set_image ()">gtk_clipboard_set_image</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-contents" title="gtk_clipboard_request_contents ()">gtk_clipboard_request_contents</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-text" title="gtk_clipboard_request_text ()">gtk_clipboard_request_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-image" title="gtk_clipboard_request_image ()">gtk_clipboard_request_image</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-targets" title="gtk_clipboard_request_targets ()">gtk_clipboard_request_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-rich-text" title="gtk_clipboard_request_rich_text ()">gtk_clipboard_request_rich_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-uris" title="gtk_clipboard_request_uris ()">gtk_clipboard_request_uris</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="returnvalue">GtkSelectionData</span></a> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-contents" title="gtk_clipboard_wait_for_contents ()">gtk_clipboard_wait_for_contents</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-text" title="gtk_clipboard_wait_for_text ()">gtk_clipboard_wait_for_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkPixbuf</span> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-image" title="gtk_clipboard_wait_for_image ()">gtk_clipboard_wait_for_image</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guint8</span> *
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-rich-text" title="gtk_clipboard_wait_for_rich_text ()">gtk_clipboard_wait_for_rich_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gchar</span> **
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-uris" title="gtk_clipboard_wait_for_uris ()">gtk_clipboard_wait_for_uris</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-is-text-available" title="gtk_clipboard_wait_is_text_available ()">gtk_clipboard_wait_is_text_available</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-is-image-available" title="gtk_clipboard_wait_is_image_available ()">gtk_clipboard_wait_is_image_available</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-is-rich-text-available" title="gtk_clipboard_wait_is_rich_text_available ()">gtk_clipboard_wait_is_rich_text_available</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-is-uris-available" title="gtk_clipboard_wait_is_uris_available ()">gtk_clipboard_wait_is_uris_available</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-targets" title="gtk_clipboard_wait_for_targets ()">gtk_clipboard_wait_for_targets</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-is-target-available" title="gtk_clipboard_wait_is_target_available ()">gtk_clipboard_wait_is_target_available</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-can-store" title="gtk_clipboard_set_can_store ()">gtk_clipboard_set_can_store</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-store" title="gtk_clipboard_store ()">gtk_clipboard_store</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkAtom</span>
</td>
<td class="function_name">
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-get-selection" title="gtk_clipboard_get_selection ()">gtk_clipboard_get_selection</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signal_proto_type">
<col width="300px" class="signal_proto_name">
<col width="200px" class="signal_proto_flags">
</colgroup>
<tbody><tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="gtk3-Clipboards.html#GtkClipboard-owner-change" title="The “owner-change” signal">owner-change</a></td>
<td class="signal_flags">Run First</td>
</tr></tbody>
</table></div>
</div>
<a name="GtkClipboard"></a><div class="refsect1">
<a name="gtk3-Clipboards.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="gtk3-Clipboards.html#GtkClipboard-struct" title="GtkClipboard">GtkClipboard</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GtkClipboard
</pre>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtk/gtk.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.description"></a><h2>Description</h2>
<p>The <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> object represents a clipboard of data shared
between different processes or between different widgets in
the same process. Each clipboard is identified by a name encoded as a
<span class="type">GdkAtom</span>. (Conversion to and from strings can be done with
<code class="function">gdk_atom_intern()</code> and <code class="function">gdk_atom_name()</code>.) The default clipboard
corresponds to the “CLIPBOARD” atom; another commonly used clipboard
is the “PRIMARY” clipboard, which, in X, traditionally contains
the currently selected text.</p>
<p>To support having a number of different formats on the clipboard
at the same time, the clipboard mechanism allows providing
callbacks instead of the actual data.  When you set the contents
of the clipboard, you can either supply the data directly (via
functions like <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-text" title="gtk_clipboard_set_text ()"><code class="function">gtk_clipboard_set_text()</code></a>), or you can supply a
callback to be called at a later time when the data is needed (via
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()"><code class="function">gtk_clipboard_set_with_data()</code></a> or <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a>.)
Providing a callback also avoids having to make copies of the data
when it is not needed.</p>
<p>gtk_clipboard_set_with_data() and <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a>
are quite similar; the choice between the two depends mostly on
which is more convenient in a particular situation.
The former is most useful when you want to have a blob of data
with callbacks to convert it into the various data types that you
advertise. When the <em class="parameter"><code>clear_func</code></em>
 you provided is called, you
simply free the data blob. The latter is more useful when the
contents of clipboard reflect the internal state of a <span class="type">GObject</span>
(As an example, for the PRIMARY clipboard, when an entry widget
provides the clipboard’s contents the contents are simply the
text within the selected region.) If the contents change, the
entry widget can call <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a> to update
the timestamp for clipboard ownership, without having to worry
about <em class="parameter"><code>clear_func</code></em>
 being called.</p>
<p>Requesting the data from the clipboard is essentially
asynchronous. If the contents of the clipboard are provided within
the same process, then a direct function call will be made to
retrieve the data, but if they are provided by another process,
then the data needs to be retrieved from the other process, which
may take some time. To avoid blocking the user interface, the call
to request the selection, <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-contents" title="gtk_clipboard_request_contents ()"><code class="function">gtk_clipboard_request_contents()</code></a> takes a
callback that will be called when the contents are received (or
when the request fails.) If you don’t want to deal with providing
a separate callback, you can also use <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-contents" title="gtk_clipboard_wait_for_contents ()"><code class="function">gtk_clipboard_wait_for_contents()</code></a>.
What this does is run the GLib main loop recursively waiting for
the contents. This can simplify the code flow, but you still have
to be aware that other callbacks in your program can be called
while this recursive mainloop is running.</p>
<p>Along with the functions to get the clipboard contents as an
arbitrary data chunk, there are also functions to retrieve
it as text, <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-text" title="gtk_clipboard_request_text ()"><code class="function">gtk_clipboard_request_text()</code></a> and
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-text" title="gtk_clipboard_wait_for_text ()"><code class="function">gtk_clipboard_wait_for_text()</code></a>. These functions take care of
determining which formats are advertised by the clipboard
provider, asking for the clipboard in the best available format
and converting the results into the UTF-8 encoding. (The standard
form for representing strings in GTK+.)</p>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GtkClipboardReceivedFunc"></a><h3>GtkClipboardReceivedFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardReceivedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                             <em class="parameter"><code><a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> *selection_data</code></em>,
                             <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
<p>A function to be called when the results of <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-contents" title="gtk_clipboard_request_contents ()"><code class="function">gtk_clipboard_request_contents()</code></a>
are received, or when the request fails.</p>
<div class="refsect3">
<a name="GtkClipboardReceivedFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>selection_data</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> containing the data was received.
If retrieving the data failed, then then length field
of <em class="parameter"><code>selection_data</code></em>
will be negative.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
supplied to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-contents" title="gtk_clipboard_request_contents ()"><code class="function">gtk_clipboard_request_contents()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkClipboardTextReceivedFunc"></a><h3>GtkClipboardTextReceivedFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardTextReceivedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                 <em class="parameter"><code>const <span class="type">gchar</span> *text</code></em>,
                                 <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
<p>A function to be called when the results of <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-text" title="gtk_clipboard_request_text ()"><code class="function">gtk_clipboard_request_text()</code></a>
are received, or when the request fails.</p>
<div class="refsect3">
<a name="GtkClipboardTextReceivedFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the text received, as a UTF-8 encoded string, or
<code class="literal">NULL</code> if retrieving the data failed. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
supplied to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-text" title="gtk_clipboard_request_text ()"><code class="function">gtk_clipboard_request_text()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkClipboardImageReceivedFunc"></a><h3>GtkClipboardImageReceivedFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardImageReceivedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                  <em class="parameter"><code><span class="type">GdkPixbuf</span> *pixbuf</code></em>,
                                  <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
<p>A function to be called when the results of <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-image" title="gtk_clipboard_request_image ()"><code class="function">gtk_clipboard_request_image()</code></a>
are received, or when the request fails.</p>
<div class="refsect3">
<a name="GtkClipboardImageReceivedFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>the received image</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
supplied to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-image" title="gtk_clipboard_request_image ()"><code class="function">gtk_clipboard_request_image()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkClipboardTargetsReceivedFunc"></a><h3>GtkClipboardTargetsReceivedFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardTargetsReceivedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                    <em class="parameter"><code><span class="type">GdkAtom</span> *atoms</code></em>,
                                    <em class="parameter"><code><span class="type">gint</span> n_atoms</code></em>,
                                    <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
<p>A function to be called when the results of <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-targets" title="gtk_clipboard_request_targets ()"><code class="function">gtk_clipboard_request_targets()</code></a>
are received, or when the request fails.</p>
<div class="refsect3">
<a name="GtkClipboardTargetsReceivedFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>atoms</p></td>
<td class="parameter_description"><p>the supported targets,
as array of <span class="type">GdkAtom</span>, or <code class="literal">NULL</code> if retrieving the data failed. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_atoms]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>n_atoms</p></td>
<td class="parameter_description"><p>the length of the <em class="parameter"><code>atoms</code></em>
array.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
supplied to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-targets" title="gtk_clipboard_request_targets ()"><code class="function">gtk_clipboard_request_targets()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkClipboardRichTextReceivedFunc"></a><h3>GtkClipboardRichTextReceivedFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardRichTextReceivedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                     <em class="parameter"><code><span class="type">GdkAtom</span> format</code></em>,
                                     <em class="parameter"><code>const <span class="type">guint8</span> *text</code></em>,
                                     <em class="parameter"><code><span class="type">gsize</span> length</code></em>,
                                     <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
<p>A function to be called when the results of
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-rich-text" title="gtk_clipboard_request_rich_text ()"><code class="function">gtk_clipboard_request_rich_text()</code></a> are received, or when the request
fails.</p>
<div class="refsect3">
<a name="GtkClipboardRichTextReceivedFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>The format of the rich text</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the rich text received, as
a UTF-8 encoded string, or <code class="literal">NULL</code> if retrieving the data failed. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
<td class="parameter_description"><p>Length of the text.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
supplied to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-rich-text" title="gtk_clipboard_request_rich_text ()"><code class="function">gtk_clipboard_request_rich_text()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkClipboardURIReceivedFunc"></a><h3>GtkClipboardURIReceivedFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardURIReceivedFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                <em class="parameter"><code><span class="type">gchar</span> **uris</code></em>,
                                <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
<p>A function to be called when the results of
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-uris" title="gtk_clipboard_request_uris ()"><code class="function">gtk_clipboard_request_uris()</code></a> are received, or when the request
fails.</p>
<div class="refsect3">
<a name="GtkClipboardURIReceivedFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>uris</p></td>
<td class="parameter_description"><p>the received URIs. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
supplied to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-request-uris" title="gtk_clipboard_request_uris ()"><code class="function">gtk_clipboard_request_uris()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.14</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkClipboardGetFunc"></a><h3>GtkClipboardGetFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardGetFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                        <em class="parameter"><code><a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> *selection_data</code></em>,
                        <em class="parameter"><code><span class="type">guint</span> info</code></em>,
                        <em class="parameter"><code><span class="type">gpointer</span> user_data_or_owner</code></em>);</pre>
<p>A function that will be called to provide the contents of the selection.
If multiple types of data were advertised, the requested type can
be determined from the <em class="parameter"><code>info</code></em>
 parameter or by checking the target field
of <em class="parameter"><code>selection_data</code></em>
. If the data could successfully be converted into
then it should be stored into the <em class="parameter"><code>selection_data</code></em>
 object by
calling <a class="link" href="gtk3-Selections.html#gtk-selection-data-set" title="gtk_selection_data_set ()"><code class="function">gtk_selection_data_set()</code></a> (or related functions such
as <a class="link" href="gtk3-Selections.html#gtk-selection-data-set-text" title="gtk_selection_data_set_text ()"><code class="function">gtk_selection_data_set_text()</code></a>). If no data is set, the requestor
will be informed that the attempt to get the data failed.</p>
<div class="refsect3">
<a name="GtkClipboardGetFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>selection_data</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> argument in which the requested
data should be stored.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>info</p></td>
<td class="parameter_description"><p>the info field corresponding to the requested target from the
<a class="link" href="gtk3-Selections.html#GtkTargetEntry" title="struct GtkTargetEntry"><span class="type">GtkTargetEntry</span></a> array passed to <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()"><code class="function">gtk_clipboard_set_with_data()</code></a> or
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data_or_owner</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
argument passed to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()"><code class="function">gtk_clipboard_set_with_data()</code></a>, or the <em class="parameter"><code>owner</code></em>
argument passed to
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkClipboardClearFunc"></a><h3>GtkClipboardClearFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkClipboardClearFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                          <em class="parameter"><code><span class="type">gpointer</span> user_data_or_owner</code></em>);</pre>
<p>A function that will be called when the contents of the clipboard are changed
or cleared. Once this has called, the <em class="parameter"><code>user_data_or_owner</code></em>
 argument
will not be used again.</p>
<div class="refsect3">
<a name="GtkClipboardClearFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data_or_owner</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>user_data</code></em>
argument passed to <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()"><code class="function">gtk_clipboard_set_with_data()</code></a>,
or the <em class="parameter"><code>owner</code></em>
argument passed to <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-get"></a><h3>gtk_clipboard_get ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
gtk_clipboard_get (<em class="parameter"><code><span class="type">GdkAtom</span> selection</code></em>);</pre>
<p>Returns the clipboard object for the given selection.
See <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-get-for-display" title="gtk_clipboard_get_for_display ()"><code class="function">gtk_clipboard_get_for_display()</code></a> for complete details.</p>
<div class="refsect3">
<a name="gtk-clipboard-get.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>selection</p></td>
<td class="parameter_description"><p>a <span class="type">GdkAtom</span> which identifies the clipboard to use</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-get.returns"></a><h4>Returns</h4>
<p>the appropriate clipboard object. If no clipboard
already exists, a new one will be created. Once a clipboard
object has been created, it is persistent and, since it is
owned by GTK+, must not be freed or unreffed. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-get-for-display"></a><h3>gtk_clipboard_get_for_display ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
gtk_clipboard_get_for_display (<em class="parameter"><code><span class="type">GdkDisplay</span> *display</code></em>,
                               <em class="parameter"><code><span class="type">GdkAtom</span> selection</code></em>);</pre>
<p>Returns the clipboard object for the given selection.
Cut/copy/paste menu items and keyboard shortcuts should use
the default clipboard, returned by passing <code class="literal">GDK_SELECTION_CLIPBOARD</code> for <em class="parameter"><code>selection</code></em>
.
(<code class="literal">GDK_NONE</code> is supported as a synonym for GDK_SELECTION_CLIPBOARD
for backwards compatibility reasons.)
The currently-selected object or text should be provided on the clipboard
identified by <span class="type">GDK_SELECTION_PRIMARY</span>. Cut/copy/paste menu items
conceptually copy the contents of the <span class="type">GDK_SELECTION_PRIMARY</span> clipboard
to the default clipboard, i.e. they copy the selection to what the
user sees as the clipboard.</p>
<p>(Passing <span class="type">GDK_NONE</span> is the same as using <code class="literal">gdk_atom_intern
("CLIPBOARD", FALSE)</code>.</p>
<p>See the
<a class="ulink" href="http://www.freedesktop.org/Standards/clipboards-spec" target="_top">FreeDesktop Clipboard Specification</a>
for a detailed discussion of the “CLIPBOARD” vs. “PRIMARY”
selections under the X window system. On Win32 the
<span class="type">GDK_SELECTION_PRIMARY</span> clipboard is essentially ignored.)</p>
<p>It’s possible to have arbitrary named clipboards; if you do invent
new clipboards, you should prefix the selection name with an
underscore (because the ICCCM requires that nonstandard atoms are
underscore-prefixed), and namespace it as well. For example,
if your application called “Foo” has a special-purpose
clipboard, you might call it “_FOO_SPECIAL_CLIPBOARD”.</p>
<div class="refsect3">
<a name="gtk-clipboard-get-for-display.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>display</p></td>
<td class="parameter_description"><p>the <span class="type">GdkDisplay</span> for which the clipboard is to be retrieved or created.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>selection</p></td>
<td class="parameter_description"><p>a <span class="type">GdkAtom</span> which identifies the clipboard to use.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-get-for-display.returns"></a><h4>Returns</h4>
<p>the appropriate clipboard object. If no
clipboard already exists, a new one will be created. Once a clipboard
object has been created, it is persistent and, since it is owned by
GTK+, must not be freed or unrefd. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-get-display"></a><h3>gtk_clipboard_get_display ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkDisplay</span> *
gtk_clipboard_get_display (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Gets the <span class="type">GdkDisplay</span> associated with <em class="parameter"><code>clipboard</code></em>
</p>
<div class="refsect3">
<a name="gtk-clipboard-get-display.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-get-display.returns"></a><h4>Returns</h4>
<p>the <span class="type">GdkDisplay</span> associated with <em class="parameter"><code>clipboard</code></em>
. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-get-default"></a><h3>gtk_clipboard_get_default ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
gtk_clipboard_get_default (<em class="parameter"><code><span class="type">GdkDisplay</span> *display</code></em>);</pre>
<p>Returns the default clipboard object for use with cut/copy/paste menu items
and keyboard shortcuts.</p>
<div class="refsect3">
<a name="gtk-clipboard-get-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>display</p></td>
<td class="parameter_description"><p>the <span class="type">GdkDisplay</span> for which the clipboard is to be retrieved.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-get-default.returns"></a><h4>Returns</h4>
<p>the default clipboard object. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-set-with-data"></a><h3>gtk_clipboard_set_with_data ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_set_with_data (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gtk3-Selections.html#GtkTargetEntry" title="struct GtkTargetEntry"><span class="type">GtkTargetEntry</span></a> *targets</code></em>,
                             <em class="parameter"><code><span class="type">guint</span> n_targets</code></em>,
                             <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardGetFunc" title="GtkClipboardGetFunc ()"><span class="type">GtkClipboardGetFunc</span></a> get_func</code></em>,
                             <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardClearFunc" title="GtkClipboardClearFunc ()"><span class="type">GtkClipboardClearFunc</span></a> clear_func</code></em>,
                             <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Virtually sets the contents of the specified clipboard by providing
a list of supported formats for the clipboard data and a function
to call to get the actual data when it is requested.</p>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="gtk-clipboard-set-with-data.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>targets</p></td>
<td class="parameter_description"><p>array containing information
about the available forms for the clipboard data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_targets]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>n_targets</p></td>
<td class="parameter_description"><p>number of elements in <em class="parameter"><code>targets</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>get_func</p></td>
<td class="parameter_description"><p>function to call to get the actual clipboard data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>clear_func</p></td>
<td class="parameter_description"><p>when the clipboard contents are set again,
this function will be called, and <em class="parameter"><code>get_func</code></em>
will not be subsequently
called. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data to pass to <em class="parameter"><code>get_func</code></em>
and <em class="parameter"><code>clear_func</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-set-with-data.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if setting the clipboard data succeeded.
If setting the clipboard data failed the provided callback
functions will be ignored.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-set-with-owner"></a><h3>gtk_clipboard_set_with_owner ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_set_with_owner (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                              <em class="parameter"><code>const <a class="link" href="gtk3-Selections.html#GtkTargetEntry" title="struct GtkTargetEntry"><span class="type">GtkTargetEntry</span></a> *targets</code></em>,
                              <em class="parameter"><code><span class="type">guint</span> n_targets</code></em>,
                              <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardGetFunc" title="GtkClipboardGetFunc ()"><span class="type">GtkClipboardGetFunc</span></a> get_func</code></em>,
                              <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardClearFunc" title="GtkClipboardClearFunc ()"><span class="type">GtkClipboardClearFunc</span></a> clear_func</code></em>,
                              <em class="parameter"><code><span class="type">GObject</span> *owner</code></em>);</pre>
<p>Virtually sets the contents of the specified clipboard by providing
a list of supported formats for the clipboard data and a function
to call to get the actual data when it is requested.</p>
<p>The difference between this function and <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()"><code class="function">gtk_clipboard_set_with_data()</code></a>
is that instead of an generic <em class="parameter"><code>user_data</code></em>
 pointer, a <span class="type">GObject</span> is passed
in.</p>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="gtk-clipboard-set-with-owner.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>targets</p></td>
<td class="parameter_description"><p>array containing information
about the available forms for the clipboard data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_targets]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>n_targets</p></td>
<td class="parameter_description"><p>number of elements in <em class="parameter"><code>targets</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>get_func</p></td>
<td class="parameter_description"><p>function to call to get the actual clipboard data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>clear_func</p></td>
<td class="parameter_description"><p>when the clipboard contents are set again,
this function will be called, and <em class="parameter"><code>get_func</code></em>
will not be subsequently
called. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>owner</p></td>
<td class="parameter_description"><p>an object that “owns” the data. This object will be passed
to the callbacks when called</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-set-with-owner.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if setting the clipboard data succeeded.
If setting the clipboard data failed the provided callback
functions will be ignored.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-get-owner"></a><h3>gtk_clipboard_get_owner ()</h3>
<pre class="programlisting"><span class="returnvalue">GObject</span> *
gtk_clipboard_get_owner (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>If the clipboard contents callbacks were set with
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a>, and the <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()"><code class="function">gtk_clipboard_set_with_data()</code></a> or
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-clear" title="gtk_clipboard_clear ()"><code class="function">gtk_clipboard_clear()</code></a> has not subsequently called, returns the owner set
by <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a>.</p>
<div class="refsect3">
<a name="gtk-clipboard-get-owner.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-get-owner.returns"></a><h4>Returns</h4>
<p>the owner of the clipboard, if any;
otherwise <code class="literal">NULL</code>. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-clear"></a><h3>gtk_clipboard_clear ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_clear (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Clears the contents of the clipboard. Generally this should only
be called between the time you call <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-owner" title="gtk_clipboard_set_with_owner ()"><code class="function">gtk_clipboard_set_with_owner()</code></a>
or <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-set-with-data" title="gtk_clipboard_set_with_data ()"><code class="function">gtk_clipboard_set_with_data()</code></a>,
and when the <em class="parameter"><code>clear_func</code></em>
 you supplied is called. Otherwise, the
clipboard may be owned by someone else.</p>
<div class="refsect3">
<a name="gtk-clipboard-clear.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-set-text"></a><h3>gtk_clipboard_set_text ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_set_text (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                        <em class="parameter"><code>const <span class="type">gchar</span> *text</code></em>,
                        <em class="parameter"><code><span class="type">gint</span> len</code></em>);</pre>
<p>Sets the contents of the clipboard to the given UTF-8 string. GTK+ will
make a copy of the text and take responsibility for responding
for requests for the text, and for converting the text into
the requested format.</p>
<div class="refsect3">
<a name="gtk-clipboard-set-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> object</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>a UTF-8 string.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>len</p></td>
<td class="parameter_description"><p>length of <em class="parameter"><code>text</code></em>
, in bytes, or -1, in which case
the length will be determined with <code class="function">strlen()</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-set-image"></a><h3>gtk_clipboard_set_image ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_set_image (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                         <em class="parameter"><code><span class="type">GdkPixbuf</span> *pixbuf</code></em>);</pre>
<p>Sets the contents of the clipboard to the given <span class="type">GdkPixbuf</span>. 
GTK+ will take responsibility for responding for requests 
for the image, and for converting the image into the 
requested format.</p>
<div class="refsect3">
<a name="gtk-clipboard-set-image.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> object</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pixbuf</p></td>
<td class="parameter_description"><p>a <span class="type">GdkPixbuf</span> </p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-request-contents"></a><h3>gtk_clipboard_request_contents ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_request_contents (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                <em class="parameter"><code><span class="type">GdkAtom</span> target</code></em>,
                                <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardReceivedFunc" title="GtkClipboardReceivedFunc ()"><span class="type">GtkClipboardReceivedFunc</span></a> callback</code></em>,
                                <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Requests the contents of clipboard as the given target.
When the results of the result are later received the supplied callback
will be called.</p>
<div class="refsect3">
<a name="gtk-clipboard-request-contents.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>target</p></td>
<td class="parameter_description"><p>an atom representing the form into which the clipboard
owner should convert the selection.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>A function to call when the results are received
(or the retrieval fails). If the retrieval fails the length field of
<em class="parameter"><code>selection_data</code></em>
will be negative. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data to pass to <em class="parameter"><code>callback</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-request-text"></a><h3>gtk_clipboard_request_text ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_request_text (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                            <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardTextReceivedFunc" title="GtkClipboardTextReceivedFunc ()"><span class="type">GtkClipboardTextReceivedFunc</span></a> callback</code></em>,
                            <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Requests the contents of the clipboard as text. When the text is
later received, it will be converted to UTF-8 if necessary, and
<em class="parameter"><code>callback</code></em>
 will be called.</p>
<p>The <em class="parameter"><code>text</code></em>
 parameter to <em class="parameter"><code>callback</code></em>
 will contain the resulting text if
the request succeeded, or <code class="literal">NULL</code> if it failed. This could happen for
various reasons, in particular if the clipboard was empty or if the
contents of the clipboard could not be converted into text form.</p>
<div class="refsect3">
<a name="gtk-clipboard-request-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a function to call when the text is received,
or the retrieval fails. (It will always be called one way or the other.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data to pass to <em class="parameter"><code>callback</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-request-image"></a><h3>gtk_clipboard_request_image ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_request_image (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                             <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardImageReceivedFunc" title="GtkClipboardImageReceivedFunc ()"><span class="type">GtkClipboardImageReceivedFunc</span></a> callback</code></em>,
                             <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Requests the contents of the clipboard as image. When the image is
later received, it will be converted to a <span class="type">GdkPixbuf</span>, and
<em class="parameter"><code>callback</code></em>
 will be called.</p>
<p>The <em class="parameter"><code>pixbuf</code></em>
 parameter to <em class="parameter"><code>callback</code></em>
 will contain the resulting
<span class="type">GdkPixbuf</span> if the request succeeded, or <code class="literal">NULL</code> if it failed. This
could happen for various reasons, in particular if the clipboard
was empty or if the contents of the clipboard could not be
converted into an image.</p>
<div class="refsect3">
<a name="gtk-clipboard-request-image.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a function to call when the image is received,
or the retrieval fails. (It will always be called one way or the other.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data to pass to <em class="parameter"><code>callback</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-request-targets"></a><h3>gtk_clipboard_request_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_request_targets (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                               <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardTargetsReceivedFunc" title="GtkClipboardTargetsReceivedFunc ()"><span class="type">GtkClipboardTargetsReceivedFunc</span></a> callback</code></em>,
                               <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Requests the contents of the clipboard as list of supported targets.
When the list is later received, <em class="parameter"><code>callback</code></em>
 will be called.</p>
<p>The <em class="parameter"><code>targets</code></em>
 parameter to <em class="parameter"><code>callback</code></em>
 will contain the resulting targets if
the request succeeded, or <code class="literal">NULL</code> if it failed.</p>
<div class="refsect3">
<a name="gtk-clipboard-request-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a function to call when the targets are
received, or the retrieval fails. (It will always be called
one way or the other.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data to pass to <em class="parameter"><code>callback</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-request-rich-text"></a><h3>gtk_clipboard_request_rich_text ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_request_rich_text (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                 <em class="parameter"><code><a class="link" href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardRichTextReceivedFunc" title="GtkClipboardRichTextReceivedFunc ()"><span class="type">GtkClipboardRichTextReceivedFunc</span></a> callback</code></em>,
                                 <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Requests the contents of the clipboard as rich text. When the rich
text is later received, <em class="parameter"><code>callback</code></em>
 will be called.</p>
<p>The <em class="parameter"><code>text</code></em>
 parameter to <em class="parameter"><code>callback</code></em>
 will contain the resulting rich
text if the request succeeded, or <code class="literal">NULL</code> if it failed. The <em class="parameter"><code>length</code></em>

parameter will contain <em class="parameter"><code>text</code></em>
’s length. This function can fail for
various reasons, in particular if the clipboard was empty or if the
contents of the clipboard could not be converted into rich text form.</p>
<div class="refsect3">
<a name="gtk-clipboard-request-rich-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a function to call when the text is received,
or the retrieval fails. (It will always be called one way or the other.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data to pass to <em class="parameter"><code>callback</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-request-uris"></a><h3>gtk_clipboard_request_uris ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_request_uris (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                            <em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboardURIReceivedFunc" title="GtkClipboardURIReceivedFunc ()"><span class="type">GtkClipboardURIReceivedFunc</span></a> callback</code></em>,
                            <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Requests the contents of the clipboard as URIs. When the URIs are
later received <em class="parameter"><code>callback</code></em>
 will be called.</p>
<p>The <em class="parameter"><code>uris</code></em>
 parameter to <em class="parameter"><code>callback</code></em>
 will contain the resulting array of
URIs if the request succeeded, or <code class="literal">NULL</code> if it failed. This could happen
for various reasons, in particular if the clipboard was empty or if the
contents of the clipboard could not be converted into URI form.</p>
<div class="refsect3">
<a name="gtk-clipboard-request-uris.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a function to call when the URIs are received,
or the retrieval fails. (It will always be called one way or the other.). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data to pass to <em class="parameter"><code>callback</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.14</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-for-contents"></a><h3>gtk_clipboard_wait_for_contents ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="returnvalue">GtkSelectionData</span></a> *
gtk_clipboard_wait_for_contents (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                 <em class="parameter"><code><span class="type">GdkAtom</span> target</code></em>);</pre>
<p>Requests the contents of the clipboard using the given target.
This function waits for the data to be received using the main 
loop, so events, timeouts, etc, may be dispatched during the wait.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-contents.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>target</p></td>
<td class="parameter_description"><p>an atom representing the form into which the clipboard
owner should convert the selection.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-contents.returns"></a><h4>Returns</h4>
<p>a newly-allocated <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> object or <code class="literal">NULL</code>
if retrieving the given target failed. If non-<code class="literal">NULL</code>,
this value must be freed with <a class="link" href="gtk3-Selections.html#gtk-selection-data-free" title="gtk_selection_data_free ()"><code class="function">gtk_selection_data_free()</code></a>
when you are finished with it. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-for-text"></a><h3>gtk_clipboard_wait_for_text ()</h3>
<pre class="programlisting"><span class="returnvalue">gchar</span> *
gtk_clipboard_wait_for_text (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Requests the contents of the clipboard as text and converts
the result to UTF-8 if necessary. This function waits for
the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-text.returns"></a><h4>Returns</h4>
<p>a newly-allocated UTF-8 string which must
be freed with <code class="function">g_free()</code>, or <code class="literal">NULL</code> if retrieving
the selection data failed. (This could happen
for various reasons, in particular if the
clipboard was empty or if the contents of the
clipboard could not be converted into text form.). </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-for-image"></a><h3>gtk_clipboard_wait_for_image ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkPixbuf</span> *
gtk_clipboard_wait_for_image (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Requests the contents of the clipboard as image and converts
the result to a <span class="type">GdkPixbuf</span>. This function waits for
the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-image.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-image.returns"></a><h4>Returns</h4>
<p>a newly-allocated <span class="type">GdkPixbuf</span>
object which must be disposed with <code class="function">g_object_unref()</code>, or
<code class="literal">NULL</code> if retrieving the selection data failed. (This could
happen for various reasons, in particular if the clipboard
was empty or if the contents of the clipboard could not be
converted into an image.). </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-for-rich-text"></a><h3>gtk_clipboard_wait_for_rich_text ()</h3>
<pre class="programlisting"><span class="returnvalue">guint8</span> *
gtk_clipboard_wait_for_rich_text (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                  <em class="parameter"><code><a class="link" href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a> *buffer</code></em>,
                                  <em class="parameter"><code><span class="type">GdkAtom</span> *format</code></em>,
                                  <em class="parameter"><code><span class="type">gsize</span> *length</code></em>);</pre>
<p>Requests the contents of the clipboard as rich text.  This function
waits for the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-rich-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>return location for the format of the returned data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>length</p></td>
<td class="parameter_description"><p>return location for the length of the returned data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-rich-text.returns"></a><h4>Returns</h4>
<p>a
newly-allocated binary block of data which must be
freed with <code class="function">g_free()</code>, or <code class="literal">NULL</code> if retrieving the
selection data failed. (This could happen for various
reasons, in particular if the clipboard was empty or
if the contents of the clipboard could not be
converted into text form.). </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length][<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-for-uris"></a><h3>gtk_clipboard_wait_for_uris ()</h3>
<pre class="programlisting"><span class="returnvalue">gchar</span> **
gtk_clipboard_wait_for_uris (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Requests the contents of the clipboard as URIs. This function waits
for the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-uris.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-uris.returns"></a><h4>Returns</h4>
<p>a newly-allocated <code class="literal">NULL</code>-terminated array of strings which must
be freed with <code class="function">g_strfreev()</code>, or <code class="literal">NULL</code> if retrieving the
selection data failed. (This could happen for various reasons,
in particular if the clipboard was empty or if the contents of
the clipboard could not be converted into URI form.). </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.14</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-is-text-available"></a><h3>gtk_clipboard_wait_is_text_available ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_wait_is_text_available (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Test to see if there is text available to be pasted
This is done by requesting the TARGETS atom and checking
if it contains any of the supported text targets. This function 
waits for the data to be received using the main loop, so events, 
timeouts, etc, may be dispatched during the wait.</p>
<p>This function is a little faster than calling
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-text" title="gtk_clipboard_wait_for_text ()"><code class="function">gtk_clipboard_wait_for_text()</code></a> since it doesn’t need to retrieve
the actual text.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-text-available.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-text-available.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> is there is text available, <code class="literal">FALSE</code> otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-is-image-available"></a><h3>gtk_clipboard_wait_is_image_available ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_wait_is_image_available (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Test to see if there is an image available to be pasted
This is done by requesting the TARGETS atom and checking
if it contains any of the supported image targets. This function 
waits for the data to be received using the main loop, so events, 
timeouts, etc, may be dispatched during the wait.</p>
<p>This function is a little faster than calling
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-image" title="gtk_clipboard_wait_for_image ()"><code class="function">gtk_clipboard_wait_for_image()</code></a> since it doesn’t need to retrieve
the actual image data.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-image-available.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-image-available.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> is there is an image available, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-is-rich-text-available"></a><h3>gtk_clipboard_wait_is_rich_text_available ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_wait_is_rich_text_available
                               (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                <em class="parameter"><code><a class="link" href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a> *buffer</code></em>);</pre>
<p>Test to see if there is rich text available to be pasted
This is done by requesting the TARGETS atom and checking
if it contains any of the supported rich text targets. This function
waits for the data to be received using the main loop, so events,
timeouts, etc, may be dispatched during the wait.</p>
<p>This function is a little faster than calling
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-rich-text" title="gtk_clipboard_wait_for_rich_text ()"><code class="function">gtk_clipboard_wait_for_rich_text()</code></a> since it doesn’t need to retrieve
the actual text.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-rich-text-available.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>buffer</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkTextBuffer.html" title="GtkTextBuffer"><span class="type">GtkTextBuffer</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-rich-text-available.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> is there is rich text available, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-is-uris-available"></a><h3>gtk_clipboard_wait_is_uris_available ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_wait_is_uris_available (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Test to see if there is a list of URIs available to be pasted
This is done by requesting the TARGETS atom and checking
if it contains the URI targets. This function
waits for the data to be received using the main loop, so events, 
timeouts, etc, may be dispatched during the wait.</p>
<p>This function is a little faster than calling
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-for-uris" title="gtk_clipboard_wait_for_uris ()"><code class="function">gtk_clipboard_wait_for_uris()</code></a> since it doesn’t need to retrieve
the actual URI data.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-uris-available.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-uris-available.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> is there is an URI list available, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: 2.14</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-for-targets"></a><h3>gtk_clipboard_wait_for_targets ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_wait_for_targets (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                <em class="parameter"><code><span class="type">GdkAtom</span> **targets</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *n_targets</code></em>);</pre>
<p>Returns a list of targets that are present on the clipboard, or <code class="literal">NULL</code>
if there aren’t any targets available. The returned list must be
freed with <code class="function">g_free()</code>.
This function waits for the data to be received using the main
loop, so events, timeouts, etc, may be dispatched during the wait.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-targets.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>targets</p></td>
<td class="parameter_description"><p>location
to store an array of targets. The result stored here must
be freed with <code class="function">g_free()</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_targets][<acronym title="The caller owns the data container, but not the data inside it."><span class="acronym">transfer container</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>n_targets</p></td>
<td class="parameter_description"><p>location to store number of items in <em class="parameter"><code>targets</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-for-targets.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if any targets are present on the clipboard,
otherwise <code class="literal">FALSE</code>.</p>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-wait-is-target-available"></a><h3>gtk_clipboard_wait_is_target_available ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_clipboard_wait_is_target_available
                               (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                                <em class="parameter"><code><span class="type">GdkAtom</span> target</code></em>);</pre>
<p>Checks if a clipboard supports pasting data of a given type. This
function can be used to determine if a “Paste” menu item should be
insensitive or not.</p>
<p>If you want to see if there’s text available on the clipboard, use
<a class="link" href="gtk3-Clipboards.html#gtk-clipboard-wait-is-text-available" title="gtk_clipboard_wait_is_text_available ()"><code class="function">gtk_clipboard_wait_is_text_available()</code></a> instead.</p>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-target-available.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>target</p></td>
<td class="parameter_description"><p>A <span class="type">GdkAtom</span> indicating which target to look for.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-wait-is-target-available.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the target is available, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-set-can-store"></a><h3>gtk_clipboard_set_can_store ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_set_can_store (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gtk3-Selections.html#GtkTargetEntry" title="struct GtkTargetEntry"><span class="type">GtkTargetEntry</span></a> *targets</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> n_targets</code></em>);</pre>
<p>Hints that the clipboard data should be stored somewhere when the
application exits or when <a class="link" href="gtk3-Clipboards.html#gtk-clipboard-store" title="gtk_clipboard_store ()"><code class="function">gtk_clipboard_store()</code></a> is called.</p>
<p>This value is reset when the clipboard owner changes.
Where the clipboard data is stored is platform dependent,
see <code class="function">gdk_display_store_clipboard()</code> for more information.</p>
<div class="refsect3">
<a name="gtk-clipboard-set-can-store.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>targets</p></td>
<td class="parameter_description"><p>array containing
information about which forms should be stored or <code class="literal">NULL</code>
to indicate that all forms should be stored. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_targets]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>n_targets</p></td>
<td class="parameter_description"><p>number of elements in <em class="parameter"><code>targets</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-store"></a><h3>gtk_clipboard_store ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_clipboard_store (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Stores the current clipboard data somewhere so that it will stay
around after the application has quit.</p>
<div class="refsect3">
<a name="gtk-clipboard-store.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2.6</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-clipboard-get-selection"></a><h3>gtk_clipboard_get_selection ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkAtom</span>
gtk_clipboard_get_selection (<em class="parameter"><code><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard</code></em>);</pre>
<p>Gets the selection that this clipboard is for.</p>
<div class="refsect3">
<a name="gtk-clipboard-get-selection.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-clipboard-get-selection.returns"></a><h4>Returns</h4>
<p> the selection</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-22.html#api-index-3.22">3.22</a></p>
</div>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GtkClipboard-struct"></a><h3>GtkClipboard</h3>
<pre class="programlisting">typedef struct _GtkClipboard GtkClipboard;</pre>
</div>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GtkClipboard-owner-change"></a><h3>The <code class="literal">“owner-change”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> *clipboard,
               <span class="type">GdkEvent</span>     *event,
               <span class="type">gpointer</span>      user_data)</pre>
<p>The ::owner-change signal is emitted when GTK+ receives an
event that indicates that the ownership of the selection
associated with <em class="parameter"><code>clipboard</code></em>
 has changed.</p>
<div class="refsect3">
<a name="GtkClipboard-owner-change.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>clipboard</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="type">GtkClipboard</span></a> on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <em class="parameter"><code>GdkEventOwnerChange</code></em>
event. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventOwnerChange]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
<p class="since">Since: 2.6</p>
</div>
</div>
<div class="refsect1">
<a name="gtk3-Clipboards.see-also"></a><h2>See Also</h2>
<p><a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>